<!DOCTYPE html>
<html>

<head lang="en">
  <meta charset="UTF-8">
  <title>注册</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport"
        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <meta name="format-detection" content="telephone=no">
  <meta name="renderer" content="webkit">
  <meta http-equiv="Cache-Control" content="no-siteapp"/>

  <link rel="stylesheet" href="./AmazeUI-2.4.2/assets/css/amazeui.min.css"/>
  <link href="./css/dlstyle.css" rel="stylesheet" type="text/css">
  <script src="./AmazeUI-2.4.2/assets/js/jquery.min.js"></script>
  <script src="./AmazeUI-2.4.2/assets/js/amazeui.min.js"></script>
  <script src="js/pligins/vue/dist/vue.js"></script>
  <script src="js/pligins/axios/dist/axios.js"></script>
  <script src="js/common.js"></script>


</head>

<body>

<div class="login-boxtitle">
  <a href="home/demo.html"><img alt="" src="./images/logobig.png"/></a>
</div>

<div class="res-banner">
  <div class="res-main">
    <div class="login-banner-bg"><span></span><img src="./images/big.jpg"/></div>
    <div class="login-box">

      <div class="am-tabs" id="doc-my-tabs">
        <ul class="am-tabs-nav am-nav am-nav-tabs am-nav-justify">
          <li class="am-active"><a href="">邮箱注册</a></li>
          <li><a href="">手机号注册</a></li>
        </ul>

        <div class="am-tabs-bd" id="phoneFrom">
          <!--邮箱登录-->
          <div class="am-tab-panel am-active" >
            <form method="post">

              <div class="user-email">
                <label for="email"><i class="am-icon-envelope-o"></i></label>
                <input type="email" name="" v-model="emailRegisterForm.email" id="email" placeholder="请输入邮箱账号">
              </div>
              <div class="user-phone">
                <label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
                <input type="text" name="" style="width: 180px;" id="imageCode" v-model="emailRegisterForm.emailCodeValue" placeholder="请输入图片验证码">
                <img id="captcha-image-temp" @click="getImageCode":src="imageCode"
                     class="captcha-image-temp"  alt="点击换图" title="点击换图" style="vertical-align: middle; cursor: pointer;">
              </div>

              <div class="verification">
                <label for="code"><i class="am-icon-code-fork"></i></label>
                <input type="tel" name="" id="code" v-model="emailRegisterForm.smsCode" placeholder="请输入验证码">
                <a class="btn" href="javascript:void(0);" @click="MobileCode"  id="MobileCode">
                  <span id="dyMobileButton">获取</span></a>
              </div>
              <div class="user-pass">
                <label for="password"><i class="am-icon-lock"></i></label>
                <input type="password" name="" v-model="emailRegisterForm.password" id="password" placeholder="设置密码">
              </div>
              <div class="user-pass">
                <label for="passwordRepeat"><i class="am-icon-lock"></i></label>
                <input type="password" name="" v-model="emailRegisterForm.passwordRepeat" id="passwordRepeat" placeholder="确认密码">
              </div>

            </form>

            <div class="login-links">
              <label for="reader-me">
                <input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
              </label>
            </div>
            <div class="am-cf">
              <input type="submit" name=""@click="emailRegister" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
            </div>

          </div>
          <!--手机号登录-->
          <div class="am-tab-panel">
            <form method="post">
              <div class="user-phone">
                <label for="phone"><i class="am-icon-mobile-phone am-icon-md"></i></label>
                <input type="tel" name="" id="phone" v-model="phoneRegisterForm.phone" placeholder="请输入手机号">
              </div>
              <div class="user-phone">
                <label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
                <input type="text" name="" style="width: 180px;" id="imageCode" v-model="phoneRegisterForm.imageCodeValue" placeholder="请输入图片验证码">
                <img id="captcha-image-temp" @click="getImageCode":src="imageCode"
                     class="captcha-image-temp"  alt="点击换图" title="点击换图" style="vertical-align: middle; cursor: pointer;">
              </div>

              <div class="verification">
                <label for="code"><i class="am-icon-code-fork"></i></label>
                <input type="tel" name="" id="code" v-model="phoneRegisterForm.smsCodeValue" placeholder="请输入验证码">
                <a class="btn" href="javascript:void(0);" @click="sendMobileCode" id="sendMobileCode">
                  <span id="dyMobileButton">获取</span></a>
              </div>
              <div class="user-pass">
                <label for="password"><i class="am-icon-lock"></i></label>
                <input type="password" v-model="phoneRegisterForm.password" name="" id="password" placeholder="设置密码">
              </div>
              <div class="user-pass">
                <label for="passwordRepeat"><i class="am-icon-lock"></i></label>
                <input type="password" name="" v-model="phoneRegisterForm.confirmPassword" id="passwordRepeat" placeholder="确认密码">
              </div>
            </form>
            <div class="login-links">
              <label for="reader-me">
                <input id="reader-me" type="checkbox"> 点击表示您同意商城《服务协议》
              </label>
            </div>
            <div class="am-cf">
              <input type="submit" @click="phoneRegister" name="" value="注册" class="am-btn am-btn-primary am-btn-sm am-fl">
            </div>

            <hr>
          </div>

          <script>
            $(function () {
              $('#doc-my-tabs').tabs();
            })
          </script>

        </div>
      </div>

    </div>
  </div>

  <div class="footer ">
    <div class="footer-hd ">
      <p>
        <a href="# ">恒望科技</a>
        <b>|</b>
        <a href="# ">商城首页</a>
        <b>|</b>
        <a href="# ">支付宝</a>
        <b>|</b>
        <a href="# ">物流</a>
      </p>
    </div>
    <div class="footer-bd ">
      <p>
        <a href="# ">关于恒望</a>
        <a href="# ">合作伙伴</a>
        <a href="# ">联系我们</a>
        <a href="# ">网站地图</a>
        <em>© 2015-2025 Hengwang.com 版权所有. 更多模板 <a href="http://www.cssmoban.com/" target="_blank" title="模板之家">模板之家</a>
          - Collect from <a href="http://www.cssmoban.com/" title="网页模板" target="_blank">网页模板</a></em>
      </p>
    </div>
  </div>

  <script type="application/javascript">

    new Vue({
      el:"#phoneFrom",
      data:{
        // 后端返回的base64图形验证码字符串数据
        imageCode:"",
        // base64后端返回后所需的前缀
        imageCodePrefix:"data:image/jpeg;base64,",
        phoneRegisterForm:{
          phone:"",
          imageCodeValue:"",
          imageCodeKey:"",
          smsCodeValue:"",
          password:"",
          confirmPassword:"",
          type:"register"
        },
        emailRegisterForm:{
          email:"",
          emailCodeValue:"",
          emailCodeKey:"",
          smsCode:"",
          password: "",
          passwordRepeat:""


        }
      },
      methods:{
// 1.生成UUID的方法
        createUuid(){
          var s = [];
          var hexDigits = "0123456789abcdefghi";
          for (var i = 0; i < 36; i++) {
            s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
          }
          s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
          s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
          s[8] = s[13] = s[18] = s[23] = "-";

          var uuid = s.join("");
          return uuid;
        },
        // 2.发起Axios请求获取图形验证码的方法
        getImageCode(){
          // 2.1.从localStorage中获取UUID
          let imageCodeKey = localStorage.getItem("registerImageCodeKey");
          // 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
          if(!imageCodeKey || imageCodeKey === ''){
            imageCodeKey = this.createUuid();
            localStorage.setItem("registerImageCodeKey",imageCodeKey);
          }
          // 2.3.发送Axios请求，传递UUID，得到图形验证码的Base64字符串
          this.$http.get("/verifyCode/image/"+imageCodeKey).then(res=>{
            // 2.3.1.将接口返回的图形验证码Base64字符串码+前缀赋值给模型中的imageCode字段
            this.imageCode = this.imageCodePrefix+res.data.resultObj;
          })
        },
        MobileCode(){
          // 1.判断手机号不为空
          if(!this.emailRegisterForm.email){
            alert("邮箱不能为空");
            return;
          }
          // 2.判断图片验证码不为空
          if(!this.emailRegisterForm.emailCodeValue){
            alert("图片验证码不能为空");
            return;
          }
          // 3.获取按钮，禁用按钮
          var sendBtn = $(event.target);
          sendBtn.attr("disabled",true);

          // 4.给图形验证码RedisKey赋值
          this.emailRegisterForm.emailCodeKey = localStorage.getItem("registerImageCodeKey");

          //5.发送ajax请求
          this.$http.post("/verifyCode/emailCode",this.emailRegisterForm).then(res=>{
            var ajaxResult = res.data;
            if(ajaxResult.success){
              alert("手机验证码已经发送到您的手机，请在5分钟内使用");
              //5.1.发送成：倒计时
              var time = 60;
              var interval = window.setInterval( function () {
                //每一条倒计时减一
                time = time - 1 ;

                //把倒计时时间搞到按钮上
                sendBtn.html(time+"秒后重发");

                //5.2.倒计时完成恢复按钮
                if(time <= 0){
                  sendBtn.html("重新发送");
                  sendBtn.attr("disabled",false);
                  //清除定时器
                  window.clearInterval(interval);
                }
              },1000);
            }else{
              //5.3.发送失败：提示，恢复按钮
              sendBtn.attr("disabled",false);
              alert("发送失败:"+ajaxResult.message);
            }
          })
        },
        sendMobileCode(event){
          // 1.判断手机号不为空
          if(!this.phoneRegisterForm.phone){
            alert("手机号不能为空");
            return;
          }
          // 2.判断图片验证码不为空
          if(!this.phoneRegisterForm.imageCodeValue){
            alert("图片验证码不能为空");
            return;
          }
          // 3.获取按钮，禁用按钮
          var sendBtn = $(event.target);
          sendBtn.attr("disabled",true);

          // 4.给图形验证码RedisKey赋值
          this.phoneRegisterForm.imageCodeKey = localStorage.getItem("registerImageCodeKey");

          //5.发送ajax请求
          this.$http.post("/verifyCode/smsCode",this.phoneRegisterForm).then(res=>{
            var ajaxResult = res.data;
            if(ajaxResult.success){
              alert("手机验证码已经发送到您的手机，请在3分钟内使用");
              //5.1.发送成：倒计时
              var time = 60;
              var interval = window.setInterval( function () {
                //每一条倒计时减一
                time = time - 1 ;

                //把倒计时时间搞到按钮上
                sendBtn.html(time+"秒后重发");

                //5.2.倒计时完成恢复按钮
                if(time <= 0){
                  sendBtn.html("重新发送");
                  sendBtn.attr("disabled",false);
                  //清除定时器
                  window.clearInterval(interval);
                }
              },1000);
            }else{
              //5.3.发送失败：提示，恢复按钮
              sendBtn.attr("disabled",false);
              alert("发送失败:"+ajaxResult.message);
            }
          })
        },
        // 用户注册方法
        phoneRegister(){
          // 非空校验
          if (this.phoneRegisterForm.phone === null){
            alert("手机号不能为空！")
          }
          if(this.phoneRegisterForm.password === null){
            alert("密码不能为空！")
          }
          // 发起axios请求进行用户注册
          this.$http.post("/user/register/phone",this.phoneRegisterForm)
            .then(result=>{
              result = result.data;
              if (result.success){
                // 注册成功跳转首页
                location.href = "index.html";
              } else {
                // 失败提示
                alert(result.message);
              }
            })
            .catch(result=>{
              alert("系统繁忙，请稍后重试！");
            })
        },
        emailRegister(){
          // 非空校验
          if (this.emailRegisterForm.email === null){
            alert("手机号不能为空！")
          }
          if(this.emailRegisterForm.password === null){
            alert("密码不能为空！")
          }
          // 发起axios请求进行用户注册
          this.$http.post("/user/register/email",this.emailRegisterForm)
            .then(result=>{
              result = result.data;
              if (result.success){
                // 注册成功跳转首页
                location.href = "index.html";
              } else {
                // 失败提示
                alert(result.message);
              }
            })
            .catch(result=>{
              alert("系统繁忙，请稍后重试！");
            })
        }
      },
      mounted(){
        this.getImageCode();
      }
    })
  </script>

</body>

</html>
